package com.oig.sys.auth.service;

import com.oig.common.module.SysRequest;
import com.oig.sys.auth.dto.DepartmentDto;
import com.oig.sys.auth.vo.DepartmentVo;

import java.util.List;


/**
 * @author wuxl
 */
public interface ITbDepartmentService {

    /**
     * 添加部门
     */
    DepartmentVo addDepartment(DepartmentDto departmentDto) ;

    /**
     * 物理删除部门
     */
    void delDepartment(Integer departmentId);

    /**
     * 逻辑删除部门
     */
    void cancelDepartment(Integer departmentId);

    /**
     * 恢复部门
     */
    void revertDepartment(Integer departmentId);

    /**
     * 更新部门
     */
    DepartmentVo updateDepartment(DepartmentDto departmentDto);

    DepartmentVo addOrUpdateDepartment(DepartmentDto departmentDto);


    List<DepartmentVo> findDepartTree(Integer tenantId);

    /**
     * 筛选部门
     */
    List<DepartmentVo> listDepartment(SysRequest<DepartmentDto> departRequest);

    /**
     * 查看部门
     */
    DepartmentVo getDepartment(Integer departmentId);


    void delDepartmentNotInIdList(List<Integer> idList, Integer tenantId);
}
